package com.fosss.community.dao;

import com.fosss.community.entity.Comment;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @author: fosss
 * Date: 2023/9/12
 * Time: 22:07
 * Description:
 */
@Mapper
public interface CommentMapper {
    /**
     * 分页查询评论
     *
     * @param entityType 评论的类型
     * @param entityId   评论的帖子id
     * @param offset     第几页
     * @param limit      每页显示多少条
     * @return 返回查询到的评论
     */
    List<Comment> selectCommentsByEntity(int entityType, int entityId, int offset, int limit);

    /**
     * 条件查询评论的数量
     */
    int selectCountByEntity(int entityType, int entityId);

    /**
     * 添加评论
     *
     * @param comment
     * @return
     */
    int insertComment(Comment comment);

    /**
     * 查询用户的回复数量
     */
    int selectCountByUser(int userId);

    /**
     * 查询用户的回复
     *
     * @param userId
     * @param offset
     * @param limit
     * @return
     */
    List<Comment> selectCommentsByUser(int userId, int offset, int limit);

    @Select("select id, user_id, entity_type, entity_id, target_id, content, status, create_time from comment where id = #{id}")
    Comment selectById(int id);
}
